package legumes.client.ui.widgets.form.item;

import com.smartgwt.client.types.Alignment;
import com.smartgwt.client.widgets.form.fields.FloatItem;
import com.smartgwt.client.widgets.form.validator.FloatRangeValidator;
import com.smartgwt.client.widgets.form.validator.IsFloatValidator;

public class QuantityFloatItem extends FloatItem {

	public QuantityFloatItem() {
		super("Quantity", "Quantit&eacute;");
//		setHint(" / ");
        setWidth(80);
        setWrapTitle(false);
        setValue(14.50f);
        setEndRow(false);
        setTextAlign(Alignment.RIGHT);
        setValidateOnExit(true);
        setValidateOnChange(true);

//
//        FormItemInputTransformer fiit = new FormItemInputTransformer() {
//			private float parseOldValue(Object oldValue){
//				Float f = 0.0f;
//				try{
//					f = (Float)oldValue;
//				}catch(Exception e4_){
//					try{
//						f = new Float( (Integer)oldValue );
//					}catch(Exception e5_){
//					}
//				}
//				return f;
//			}
//			@Override
//			public Object transformInput(DynamicForm form, FormItem item, Object value,
//					Object oldValue) {
//				Float f = 0.0f;
//				try{
//					f = Float.parseFloat( ((String) value).replace(',', '.') );
//				} catch(Exception e_){
//					try{
//						f = Float.parseFloat( value.toString().replace(',', '.') );
//					}catch(Exception e2_){
//						f = parseOldValue(oldValue);
//					}
//				}
//				return f;
//			}
//		};

//		FormItemValueFormatter fivf = new FormItemValueFormatter() {
//			
//			@Override
//			public String formatValue(Object value, Record record, DynamicForm form,
//					FormItem item) {
//				Number n = null;
//				if( value instanceof String){
//					try{
//						n = Float.parseFloat( ((String) value).replace(',', '.') );
//					} catch(Exception e_){
//					}
//				} else {
//					n = (Number)value;
//				}
//				return value!=null ? NumberFormat.getFormat("#0.00").format( n ) : "";
//			}
//		};
		
//		FloatPrecisionValidator fpv = new FloatPrecisionValidator();
//        fpv.setPrecision(2);
//        fpv.setRoundToPrecision(2);
        FloatRangeValidator frv = new FloatRangeValidator();
        frv.setMin(0.0001f);
        frv.setMax(10000.0f);
        frv.setErrorMessage("Saisir une quantité entre 0.0001 et 10000.");
        
        IsFloatValidator isFloatValidator = new IsFloatValidator();
        isFloatValidator.setErrorMessage("Le nombre saisit doit &ecirc;tre un décimal.");
        
        setValidators(isFloatValidator, frv);
//        setEditorValueFormatter(fivf);
        
//        setInputFormat("#0.00");
//        setInputTransformer( fiit );
        
	}
}
